import Vue from 'vue'
import App from './App'

// 全局请求拦截器
uni.addInterceptor('request', {
    success: function (res) {
        if (res.data && res.data.code === 401) {
            // 只使用小程序的存储API
            uni.clearStorageSync();
            
            // token 失效，跳转到登录页
            uni.redirectTo({
                url: '/src/views/pageMain/pageLogin/index'
            });
        }
        return res;
    },
    fail: function (err) {
        // 只在需要时清除存储
        // uni.clearStorageSync();
        
        // 请求失败，跳转到登录页
        // uni.redirectTo({
        //     url: '/src/views/pageMain/pageLogin/index'
        // });
        return err;
    }
});

Vue.config.productionTip = false
App.mpType = 'app'
// 此处为演示Vue.prototype使用，非uView的功能部分

// 背景图片访问路径
import httpUrl from './src/tools/config.js';
Vue.prototype.$httpUrl = httpUrl;
console.log('tupian dizhi :',httpUrl.base_url)

// 引入全局uView
import uView from '@/uni_modules/uview-ui'
Vue.use(uView)
// import uView2 from 'uview-ui-2.0'
// Vue.use(uView2)

// 此处为演示vuex使用，非uView的功能部分
import store from '@/store'

// 引入uView提供的对vuex的简写法文件
let vuexStore = require('@/store/$u.mixin.js')
Vue.mixin(vuexStore)

// 引入uView对小程序分享的mixin封装
let mpShare = require('uview-ui/libs/mixin/mpShare.js');
Vue.mixin(mpShare)
// 网络请求模块-2
import $ajax from './src/tools/request.js'
Vue.prototype.$ajax = $ajax

// 音乐播放器
import music from './src/tools/music.js'
Vue.prototype.$music = music
console.log(music)

// // 禁止手机左右滑屏翻页
// import mixin from './src/tools/mixin.js';
// Vue.mixin(mixin);

// i18n部分的配置
// 引入语言包，注意路径
// import Chinese from '@/common/locales/zh.js';
// import English from '@/common/locales/en.js';

// VueI18n
// import VueI18n from './common/vue-i18n.min.js'

// VueI18n
// Vue.use(VueI18n)

// const i18n = new VueI18n({
//   // 默认语言
//   locale: 'zh',
//   // 引入语言文件
//   messages: {
//     'zh': Chinese,
//     'en': English,
//   }
// })

// 由于微信小程序的运行机制问题，需声明如下一行，H5和APP非必填   后期上传至web资源
// Vue.prototype._i18n = i18n

const app = new Vue({
  // i18n,
  store,
  ...App
})

// http拦截器，将此部分放在new Vue()和app.$mount()之间，才能App.vue中正常使用
import httpInterceptor from '@/common/http.interceptor.js'
Vue.use(httpInterceptor, app)

// http接口API抽离，免于写url或者一些固定的参数
import httpApi from '@/common/http.api.js'
Vue.use(httpApi, app)

app.$mount()
